The present invention is directed to an apparatus which controls the display of a raster scan display device, and in particular, to an apparatus having a dual port memory for storing information which is to be displayed.
The use of dual port memories for storing information to be displayed on a raster scan display device is known in the art. Such conventional devices utilize a dual port memory having a random access memory (RAM) and a sequential access memory (SAM) which are controlled by a processor for storing and outputting information. The memory includes two outputs and two inputs and is capable of transferring data between the RAM and SAM. To produce a display, the memories are utilized to store information about characters stored at successive addresses, and color information characteristics of the characters such as flicker display.
The information concerning the dots forming graphical images or color information is successively read from the SAM. The characters are then converted into a different pattern, the colors are selected or the data is otherwise processed. This transmitted data is then fed to a display device. The processor outputs instructions for writing the information into the RAM at arbitrary addresses or for reading the information from the RAM already stored at the arbitrary addresses. An address selecting signal and a control signal are input to the RAM to cause information to be written in or to be read from the RAM. These input signals also act to refresh the memory. The memory is a dynamic memory and therefore it is periodically refreshed to prevent the stored information from being lost. Another function of the input signal is to transfer data. Additionally, a limitation is imposed by the amount of data which may be continuously read from the SAM.
By way of example, in a device utilizing a dual port memory of 64 kilowords by four bits, the maximum amount of data which can be continuously read out is 256 words. Therefore, 256 words of information is transferred from the RAM to SAM at a single time. It follows that when a display is initiated, i.e., when data is first read from the SAM, the data to be read out must be transferred from the RAM to the SAM.
To perform these functions, the device performs four memory cycles. When a raster scan display device such as a CRT, a liquid crystal display, a plasma display or the like displays an image, video data traces a succession of horizontal lines beginning with the upper left position of the display screen. As seen in FIG. 1, the right hand end of a horizontal line is followed by the left hand end of the succeeding horizontal line. The upper right hand end of a line is followed by the upper left hand end of the succeeding line of information. During the interval between the end of one horizontal line and the start of the succeeding horizontal line, a horizontal synchronization pulse 201 is produced to inform the display device of the occurrence of the end of a horizontal scan. Also a blanking time period 202 is output during this interval. Therefore, a data transfer cycle for beginning the next line is able to use this blanking time.
However, if the 255th data word, indicated as 204, is read while the horizontal line is being displayed, then data transfer for reading next word of data, the 0th word, is needed. Specifically, it becomes necessary to transfer data from the RAM to the SAM at the same time data is being read from the SAM. In such a case, a very stringent limitation is imposed on the moment at which the data transfer cycle is executed.
Reference is now made to FIG. 2 wherein a timing chart for such a transfer is provided. A SAM access clock pulse 301 rises causing image data 302, 303, 304 . . . to be successfully read from the SAM at successive addresses. As this operation is repeated, a leading edge 306 of a SAM clock pulse causes the 255th data item, indicated at 307, to be read out from the SAM. If the process were to be continued further, then data can no longer be read from the SAM port because of the limitation of the SAM capacity, i.e. there would be no more data to read. For this reason, the data transfer cycle is carried out. If the transfer is not completed before the next leading edge 308 of a SAM access clock pulse, then incorrect data would have to be read when in fact data 309 should be the 0th data item.
During the data transfer cycle, leading edge 211 of a data transfer control signal 310 actually causes the transfer. Therefore, the data transfer cycle must be executed in such a way that the leading edge 311 occurs between leading edges 306 and 308 of the SAM axis clock pulses 301. The method used in the prior art is to fix the first address of the displayed image or to place some limitation if the first address is not fixed.
When a limitation is provided some of the first (lowermost) bits of the address are fixed. Thus, the position at which data transfer is needed during the display of an image is predetermined. The moment in time corresponding to this position is reserved for the data transfer cycle. One example of this method is illustrated in FIG. 3 in which the relation of the horizontal position displayed on the view screen to the address in the memory used for the display is shown. In this example, each horizontal line is segmented into 320 addresses. If the limitation is set so that the first six bits of the first address are given values of 0 and the initial data read from the SAM at the beginning of display operation consist of one of only four specific data items such as the 0th data item 401 on the first horizontal line, the 64th data item 402 on the second horizontal line, the 128 data item 403 on the third horizontal line and the 192nd data item 404 ion the fourth horizontal line, neither the 256th data item or the 320th data item is included. In this example, since the dual port memory is designed to store 64 kilowords by four bits, the 256th data item is the 0th data item of the next line or the 256th word to be output. Considering the position at which the data transfer is needed for each of these data items, between the 255th data word and 0th data word positions 408, 407, 406, 405 are respectively assumed to be the desired position for the lines beginning with the 0th, 64th, 128th, 192nd data words. It is at these positions that the data transfer cycle is performed and the reading operation is repeated with the 0th data word. The data read out at the end of the line consist of the 63rd data item 409 on the first line, the 127th data item 410 on the second line, 191st data word 411 on the third line and the 255th data word 412 on the fourth line. The data read out at the beginning of the succeeding line consists of the four data-words in the same manner as in the case of the first four lines. Therefore, the position at which the data transfer occurs which is necessary for the next line always occurs at one of the locations 405, 406, 407 and 408. This way data transfer is required to occur at one of four locations for every line displayed.
Each line is assigned four time periods 413, 414, 415 or 416 corresponding to the point in time at which the data transfer cycle must occur. A decision is then made to determine whether the data transfer cycle must occur based upon the address at the preceding positions for 417, 418, 419 and 420. The data is read out and compared with the 240th data word at positions 417, 418, 419 or 420. When data read out exceeds the 240th data word execution of other cycles is prevented and the data transfer cycle is carried out at precisely the previously assigned time either 413, 414, 415 or 416 which ever occurs next. If the 240th data word is not exceeded it is not necessary to transfer the data and another cycle is carried out as requested. In this manner data transfer is correctly executed.
These prior art techniques have been satisfactory, however they suffer from the limitation that timing limitations are imposed on the setting of the address at which a display is initiated. This makes it impossible to display the image data stored in a desired region in the memory.
Accordingly, it is desired to provide an apparatus for controlling the raster display which overcomes the disadvantage of the prior art described above to permit any image data stored in a desired region in the memory to be displayed on a view screen.